const Koa=require("koa");
let app=new Koa();
/* koa的级联中间件
    1.安装app.use的代码定义顺序，按序执行
    2.默认app.use的代码如果没有调用next函数，后续的所有app.use方法将不会执行
    3.为了让app.use能够按照顺序依次执行，必须在对应的app.use的回调方法中的何时位置完成next函数调用 */

// koa引入中间件的概念，目的是为了拆分功能函数
    // 处理函数默认第二个参数会接收next promise函数对象，该对象用于完成中间件的链接操作
    //koa第一个中间件调用next(),则该中间件函数暂停并控制传递给下一个中间件

app.use(async function(ctx,next){
    console.log("请求到达");
    await next();
    console.log("响应完成");
});

app.use(async function(ctx){
    console.log("处理响应结果");
    ctx.body="haha";
});
app.listen(3000);